
# lambda表达可以被看作是一种匿名函数, 可以让你快速定义一个极度简单的单行函数
def sum(a, b, c):
    return a+b+c


# 可以写作
sum2 = lambda a, b, c: a+b+c
print(sum2(1, 3, 5))

# lambda 语法
# lambda 参数列表 : 表达式
# 主体只能是一个表达式, 不可以是代码块, 所以能表达的逻辑有限
# lambda 表达式创建了一个函数对象, 可以把这个对象赋值给一个变量进行调用

# 复杂例子
def fn(x):
    return lambda y: x+y

a = fn(2)  # 返回一个lambda表达式给a
print(a(3))

# 事实上, 任何可以使用lambda的地方, 都可以通过普通的def定义来替代
# 而对于像 filter , sort这种需要内嵌函数的方法, lambda更加合适

